﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BuildOptimizer
{
    delegate void actionDelegate(BoDecisionNode n);
    delegate void updateOutputTextDelegate(string output);

    enum Units
    {
        Drone,
        Overlord,
        Overseer,
        Zergling,
        Baneling,
        Roach,
        Mutalisk,
        Infestor,
        Queen,
        Hydralisk,
        Corruptor,
        Ultralisk,
        Broodlord
    };

    enum Buildings
    {
        Hatchery,
        Lair,
        Hive,
        SpawningPool,
        EvolutionChamber,
        RoachWarren,
        HydraliskDen,
        BanelingNest,
        InfestationPit,
        GreaterSpire,
        UltraliskCavern,
        Extractor,
        Spire,
        SpineCrawler,
        SporeCrawler,
        NydusNetwork,
        NydusWorm,
        CreepTumor
    };

    enum Upgrades
    {
        MetabolicBoost,
        AdrenalGlands,
        GlialReconstitution,
        TunnelingClaws,
        Burrow,
        PneumatizedCarapace,
        VentralSacs,
        CentrifugalHooks,
        Melee1,
        Melee2,
        Melee3,
        Missile1,
        Missile2,
        Missile3,
        GroundArmor1,
        GroundArmor2,
        GroundArmor3,
        GroovedSpines,
        NeuralParasite,
        PathogenGlands,
        flyerAttack1,
        flyerAttack2,
        flyerAttack3,
        flyerArmor1,
        flyerArmor2,
        flyerArmor3,
        ChitinousPlating
    };

    enum commandID
    {
        buildBanelingNest,
        buildEvolutionChamber,
        buildExtractor,
        buildGreaterSpire,
        buildHatcheryAtResourcePatch,
        buildHatcheryInBase,
        buildHive,
        buildHydraliskDen,
        buildInfestationPit,
        buildLair,
        buildNydusNetwork,
        buildNydusWorm,
        buildRoachWarren,
        buildSpawningPool,
        buildSpineCrawler,
        buildSpire,
        buildSporeCrawler,
        buildUltraliskCavern,
        buildBaneling,
        buildBroodlord,
        buildCorruptor,
        buildDrone,
        buildHydralisk,
        buildInfestor,
        buildMutalisk,
        buildOverlord,
        buildOverseer,
        buildQueen,
        buildRoach,
        buildUltralisk,
        buildZergling,
        upgradeAdrenalGlands,
        upgradeBurrow,
        upgradeCentrifugalHooks,
        upgradeChitinousPlating,
        upgradeFlyerArmor1,
        upgradeFlyerArmor2,
        upgradeFlyerArmor3,
        upgradeFlyerAttacks1,
        upgradeFlyerAttacks2,
        upgradeFlyerAttacks3,
        upgradeGlialReconstitution,
        upgradeGroovedSpines,
        upgradeGroundArmor1,
        upgradeGroundArmor2,
        upgradeGroundArmor3,
        upgradeMelee1,
        upgradeMelee2,
        upgradeMelee3,
        upgradeMetabolicBoost,
        upgradeMissile1,
        upgradeMissile2,
        upgradeMissile3,
        upgradeNeuralParasite,
        upgradePathogenGlands,
        upgradePneumatizedCarapace,
        upgradeTunnelingClaws,
        upgradeVentralSacs,
        queenCreepTumor,
        queenInject,
        startFromRoot,
    };
}
